### В терминологии сетей TCP/IP 

маской сети называется двоичное число, определяющее, какая часть `IP`-адреса узла сети относится к адресу сети, а какая  — к адресу самого узла в этой сети. 

Обычно маска записывается по тем же правилам, что и `IP`-адрес.

Адрес сети получается в результате применения поразрядной конъюнкции к заданному `IP`-адресу узла и маске.

Создать класс `IpAddress`, принимающий `ip-адрес` в виде строке

Реализовать в нем:

* магический метод `__repr__` реализающий вывод `ip` в виде 

* метод `get_bin_ip` реализующий двоичное преобразование `ip` адресса к виду `10010001 01011100 10001001 01011000`

* магический метод `__mul__` реализающий побитовое умноже
ние & (октаа) ip адресов и возвращающий адрес сети


```python

class IpAddress:

    def __init__(self, ip=''):
       ...


    def show_bin_ip(self):
      ...

    def __mul__(self, other):
      ...

    def __repr__(self):
       ...


ip_address = IpAddress('142.9.227.146')
ip_address.show_bin_ip()  # 10001110 00001001 11100011 10010010
subnet_mask = IpAddress('255.255.192.0')
ip_net = ip_address * subnet_mask
print(ip_net) #(142, 9, 192, 0)

```



IP – адрес узла: `142.9.227.146`
Маска: `255.255.224.0`



```
# маска = 11111111 11111111 11110000 00000000
# комп =  10010001 01011100 10001001 01011000
# сеть =  10010001 01011100 10000000 00000000
# сеть =     145     92        128       0
```